import request from '../utils/request';
import {API_FILE} from './config';

// // 文件上传响应结果
// export interface FileUploadResult {
//     fileId?: string;
//     fileName?: string;
//     fileUrl: string;
//     fileSize?: number;
//     fileType?: string;
// }

/**
 * 上传文件
 * 通过后端接口上传文件，后端使用AliOssUtil工具类实现文件上传
 * @param file 文件对象
 * @param invoiceId 关联的发票ID（可选）
 * @returns 上传后的文件URL
 */
export function uploadFile(file: File, invoiceId?: string) {
    const formData = new FormData();
    formData.append('file', file);

    if (invoiceId) {
        formData.append('invoiceId', invoiceId);
    }

    return request<string>({
        url: API_FILE.UPLOAD,
        method: 'post',
        data: formData,
        headers: {
            'Content-Type': 'multipart/form-data'
        }
    });
}

/**
 * 获取文件访问URL
 * @param fileUrl 文件URL
 * @returns 完整的文件访问URL
 */
export function getFileUrl(fileUrl: string): string {
    // 如果是完整URL，直接返回
    if (!fileUrl) return '';

    if (fileUrl.startsWith('http://') || fileUrl.startsWith('https://')) {
        return fileUrl;
    }
    // 如果是相对路径，添加基础URL
    if (fileUrl && !fileUrl.startsWith('/')) {
        fileUrl = '/' + fileUrl;
    }
    return fileUrl;
}

// /**
//  * 删除文件
//  * @param fileUrl 文件URL
//  * @param invoiceId 关联的发票ID（可选），如果提供，会同时清除发票的文件路径
//  * @returns 删除结果
//  */
// export function deleteFile(fileUrl: string, invoiceId?: string) {
//     let params: any = {fileUrl};
//
//     // 如果提供了发票ID，添加到请求参数中
//     if (invoiceId) {
//         params.invoiceId = invoiceId;
//     }
//
//     return request({
//         url: API_FILE.DELETE,
//         method: 'delete',
//         params
//     });
// }

// /**
//  * 上传Base64编码的图片
//  * 后端使用AliOssUtil工具类实现文件上传
//  * @param base64Data Base64编码的图片数据
//  * @param module 模块名称
//  * @returns 上传结果
//  */
// export function uploadBase64Image(base64Data: string, module: string = 'common') {
//     return request<string>({
//         url: API_FILE.UPLOAD_BASE64,
//         method: 'post',
//         data: {base64Data, module}
//     });
// }